' ccCGI_DemoReport.bas
' ccCGI_DemoReport.bas
' display HTML inside an existing web page

#COMPILE EXE
#DIM ALL
#DEBUG ERROR ON
'
#INCLUDE "Win32api.inc"
#INCLUDE "../Libraries/PBCGI.INC"
#INCLUDE "../Libraries/PB_FileHandlingRoutines.inc"

FUNCTION PBMAIN () AS LONG
  LOCAL strInput AS STRING  ' incoming URL
  DIM strParam(1) AS STRING ' array for parameters
  LOCAL lngPcount AS LONG   ' parameter count
  LOCAL strFile AS STRING   ' file to display
  LOCAL lngR AS LONG        ' row counter
  '
   ' Read from STDIN
  strInput = ReadCGI
  'WriteCGI "here"
  ' Count and parse the parameters into an array
  lngPcount = ParseParams(strInput, strParam())
  '
  IF lngPcount > 0 THEN
  ' pick up each parameter
    FOR lngR = 1 TO UBOUND(strParam)
      SELECT CASE lngR
        CASE 1
        ' random number to ensure no caching = ignore this
        CASE 2
          strFile = DecodeCGI(strParam(lngR))
          strFile = PARSE$(strFile,"=",2)
          WriteCGI  funGetUserList_v3(strFile)
      END SELECT
      '
    NEXT lngR
  ELSE
  ' give nothing back
    WriteCGI "no data"
  END IF
  '
END FUNCTION
'
FUNCTION funGetUserList_v3(strFile AS STRING) AS STRING
  LOCAL strHTML AS STRING
  LOCAL lngR AS LONG
  LOCAL lngC AS LONG
  LOCAL strFilename AS STRING
  DIM a_strWork() AS STRING
  '
  '
  LOCAL strTableDef AS STRING
  LOCAL strTableRowHeader AS STRING
  LOCAL strBackColour AS STRING
  '
  strTableDef = "<table class=""TableList TableWidth"">"
  strTableRowHeader = "<tr class=""TableListHeader"">
  '
  strFilename = EXE.PATH$ & "Data\" & strFile
  '
  IF ISTRUE funReadTheCSVFileIntoAnArray(strFilename, _
                               BYREF a_strWork()) THEN
  ' start a table
    strHTML = strHTML & strTableDef
    FOR lngR = 0 TO UBOUND(a_strWork,1)
      ' start a new row within the table
      IF lngR = 0 THEN
      ' this is the header row so set the colour scheme
        strHTML = strHTML & strTableRowHeader
      ELSE
        IF (lngR MOD 2) = 0 THEN
        ' set the colour banding
          strBackColour = " class=""NewBandingEven"" "
        ELSE
          strBackColour = " class=""NewBandingOdd"" "
        END IF
        ' start the row with a background colour for all
        ' cells
        strHTML = strHTML & "<tr" & strBackColour & ">"
        '
      END IF
      '
      FOR lngC = 1 TO UBOUND(a_strWork,2)
        ' enter a table data element
        strHTML = strHTML & "<td>" & a_strWork(lngR,lngC) & "</td>"
      NEXT lngC
      ' close off a row in the table
      strHTML = strHTML & "</tr>"
      '
    NEXT lngR
    ' close off the table and html document
    strHTML = strHTML & "</table>
    FUNCTION = strHTML
  ELSE
    FUNCTION = "No data"
  END IF
  '
END FUNCTION